کم کردن حجم فیلم توسط کد در Asp net core
با سلام خدمت همه عزیزان یک مشکل دارم برای آپلود فیلم در سایت با توجه به اینکه من میخوام برای سایتم یک آپلود فیلم بزارم چطوری باید با کد نویسی و بدونه دخالت خود کاربر حجم فیلم آپلود شده را کم کنم لازم به ذکر میدانم که حجم فیلم های آپلود شده بالای 200مگ در نظر بگیرید . و تقریبا یه چیزی مثل تلگرام می خوام چون زمانی که در تلگرام فیلم آپلود میکنی اگر حجم فایل آپلودی 390 مگ باشه طرف مقابل وقتی اون را دانلود میکنه میاد تبدیلش میکنه به 39 مگ که از لحاظ کیفیتی هم زیاد افت پیدا نمیکنه ممنون میشم اگه کسی بنده را راهنمایی کنه با تشکر
پاسخ هوش مصنوعی
برای کم کردن حجم فیلم هنگام آپلود، می توانید از کتابخانه های JavaScript مانند ffmpeg.js استفاده کنید. این کتابخانه نسخه جاوا اسکریپت کتابخانه FFmpeg است که می تواند به شما کمک کند تا به صورت مستقیم در مرورگر ویدیو را فشرده کنید.
در اینجا یک مثال ساده برای آپلود و فشرده سازی ویدیو با استفاده از ffmpeg.js آورده شده است:
// ابتدا باید FFmpeg.js را به پروژه خود اضافه کنید
// می توانید آن را از طریق CDN اضافه کنید
//
async function compressVideo(file) {
const { createFFmpeg, fetchFile } = FFmpeg;
const ffmpeg = createFFmpeg({ log: true });
await ffmpeg.load();
ffmpeg.FS('writeFile', 'input.mp4', await fetchFile(file));
await ffmpeg.run('-i', 'input.mp4', '-vcodec', 'libx264', '-crf', '28', 'output.mp4');
const data = ffmpeg.FS('readFile', 'output.mp4');
// تبدیل خروجی به Blob و ساخت یک URL
const videoBlob = new Blob([data.buffer], { type: 'video/mp4' });
const videoUrl = URL.createObjectURL(videoBlob);
// در اینجا می توانید URL را برای پیش نمایش یا آپلود به سرور استفاده کنید
console.log(videoUrl);
}
// استفاده از تابع compressVideo
// فرض بر این است که یک ورودی فایل داریم
document.getElementById('upload').addEventListener('change', (event) => {
const file = event.target.files[0];
if (file) {
compressVideo(file);
}
});
شما همچنین می توانید از تنظیمات مختلف FFmpeg برای بهینه سازی ویدیو استفاده کنید. پارامترهای -crf برای کنترل کیفیت ویدیو است (مقدار کمتر یعنی کیفیت بالاتر و حجم بیشتر).
همچنین توجه داشته باشید که این روش ممکن است در مرورگرهای مختلف زمان بر باشد و ممکن است نیاز به منابع سیستمی بالایی داشته باشد. بنابراین، می توانید برای کاهش بار بر روی مرورگر کاربر، این فرایند را به سمت سرور منتقل کنید.
- کم کردن حجم فیلم توسط کد در Asp net core
- چه کسانی استوری تلگرام را می بینند ؟
- برای کسب و کار تلگرام پرمیوم بهتره یا واتس اپ بیزینس ؟
- جلوگیری از انتشار غیرمجاز مطالب در کانال های تلگرامی
- تفاوت های تلگرام و واتس اپ چیست ؟
- چرا استوری های واتس اپ برای دوستان نمایش داده نمیشن ؟
- چند تا استوری رایگان می تونیم تلگرام بذاریم ؟
- خطای Severity Code Description Project هنگام استارت پروژه
- کار نکردن navBar و sideBar در پروژه Asp.net core
- خطا موقع استفاده از Api در سی شارپ
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2